/**
 * @author taowei20061122@163.com
 *
 * 2013-6-10 上午05:26:45
 */
package study.designpattern.observer;

/**
 * 观察者，比如报纸的读者
 * 
 * 场景问题：订阅报纸的问题，进一步抽象描述这个问题：当一个对象的状态发生改变的时候，如何让依赖它的所有对象得到通知，
 *     并进行相应的处理呢？
 * 解决办法：观察者模式：定义对象之间的一种一对多的关系。当一个对象的状态发生改变时，所有依赖它的对象都得到通知并被
 *     自动更新。
 * 
 * 观察者模式的本质：触发联动
 * 何时选用观察者模式：
 *     1.当一个抽象模型有两个方面，其中一个方面的操作依赖于另一方面的状态的变化；
 *     2.如果在改变一个对象的时候，需要同时连带改变其他的对象，而且不知道究竟有多少对象被连带改变；
 *     3.当一个对象必须通知其他的对象，但是你又希望这个对象和其他被通知的对象松散耦合；
 * @author taowei20061122@163.com
 *
 * 2013-6-10 上午05:26:45
 */
public interface Observer {
	/**
	 * 被通知的方法
	 * @param subject 具体的目标对象，可以获取报纸的内容
	 */
	public void update(Subject subject);
}
